<?php
/**
    Esta p�gina ser� utilizada para realizar as opera��es de cadastro, altera��o e remo��o de uma Reserva no banco de dados.
    A diferencia��o destas opera��es ser� feita pelo par�metro operacao que ser� informado via GET.
    C�digo 1: Cadastro
    C�digo 2: Altera��o
    C�digo 3: Remo��o
    Exibe ao fim o resultado das opera��es para o usu�rio.
*/

if(!isset($_SESSION))
{
   session_start();
}

if( isset( $_SESSION['servidorPerfil'] )) // valida��o para verificar se o usu�rio que tentou acessar a p�gina possui privil�gios para isso
{
    if( $_SESSION['servidorPerfil'] != 0 and $_SESSION['servidorPerfil'] != 2 )
    {
        $_SESSION['mensagem'] = "Voce nao tem permissao para acessar a p�gina requerida.";
        header("Location: Erro.php");
    }
}

else if( isset( $_SESSION['servidorPerfil'] ) == false ) // valida��o para verificar se o usu�rio que tentou acessar a p�gina est� logado
{
        $_SESSION['mensagem'] = "Para acessar esta pagina voce precisa estar logado.";
        header("Location: index.php");
}

if( !function_exists('__autoload') )
{
    function __autoload($class_name) {
    require_once $class_name . '.php';
    }
}

/**
      Tira a mascara do valor para poder salvar no banco de dados
      @valorFonte - valor mascarado da fonte
      @return - Retorna uma string com o valor da fonte sem as mascaras de formata��o.
      */

function TirarFormatacaoValor( $valorFonte )
{
   	$valorSemPonto = "";
   	$valorSemVirgula = ""; 
   	$valorSemFormato = "";
   	$vlr = "";
	$valorSemPonto = explode(".",$valorFonte);
	for($i=0;$i<count($valorSemPonto);$i++)
	$vlr .= $valorSemPonto[$i];
		
	$valorSemVirgula = explode(",",$vlr);
	for($i=0;$i<count($valorSemVirgula);$i++)
	$valorSemFormato .= $valorSemVirgula[$i];
	return $valorSemFormato;
      	
}

function TirarFormatacaoProcesso($numProcesso){
	return str_replace(array(".", "/", "-"), "", $numProcesso);
}

if( isset( $_GET['operacao'] ) )
{
	/** Cadastra um objeto rateio no banco de dados.
	 * @POST['campiId']  	 - Identificador unico do objeto Campus no Banco de Dados
	 * @POST['tipoDespesa']  - tipo de despesa da fonte 
	 * @POST['fonteId'] - codigo da fonte de recurso
	 * @POST['valorRateio']   - valor do Rateio
	 */
    if( $_GET['operacao'] == 1 )
    { 
			// dados do formulario vindos de CadastrarRateio.php
			
                        $anoId 	     	 = $_POST['anoId'];
			$campusId    	 = $_POST['campiId'];
			$tipoDesp    	 = $_POST['tipoDespesa'];
			$fonteId 	 	 = $_POST['fonteId'];
			$valor   	 	 = $_POST['valorReserva'];
			$setorId     	 = $_POST['setorId'];
			$processo    	 = $_POST['processoReserva'];
			$despesa     	 = $_POST['despesaReserva'];
			$natureza    	 = $_POST['naturezaDespesa'];
			$subElementoId 	 = $_POST['subelemReserva'];
			$licitacaoId 	 = $_POST['licitacaoId'];
			$planoInternoId  = $_POST['planoInternoId'];
			
			$rateio = new Rateio();
			$rateioSelecionado = $rateio->CarregarRateioPorCampus($fonteId, $campusId);
			//Tirando a mascara do valor para poder armazenar no banco
			$valorReserva = TirarFormatacaoValor( $valor );
			
			//if($rateioSelecionado->valorCorrente >= $valorReserva){

				$ano = new Ano();
				$anoSelecionado = $ano->CarregarAno($anoId);
					
				$campi = new Campus();
				$campiSelecionado = $campi->CarregarCampus( $campusId );

				$fonteRecurso = new Fonte();
				$fonteSelecionada = $fonteRecurso->CarregarFonte( $fonteId );
					
				$setor = new Setor();
				$setorSelecionado = $setor->CarregarSetor( $setorId );
					
				$licitacao = new Licitacao();
				$licitacaoSelicionada = $licitacao->CarregarLicitacao($licitacaoId);
					
				$naturezaDespesa = new NaturezaDespesa();
				$naturezaDespesaSelect = $naturezaDespesa->CarregarNaturezaDespesa($natureza);

				$subElemento = new SubElemento();
				$subElementoSelect = $subElemento->CarregarSubElemento($natureza, $subElementoId);
					
					
				$rateioSelecionado->valorCorrente = $rateioSelecionado->valorCorrente - $valorReserva;
				$numProcesso = TirarFormatacaoProcesso($processo);
				//$numProcesso = $processo;
				
				$planoInternoDAO = new PlanoInterno();
				$planoInterno = $planoInternoDAO->ConsultarPorCodigo($planoInternoId);
								 	
				$reserva = new Reserva(NULL, $anoSelecionado, $rateioSelecionado, $campiSelecionado, $tipoDesp, $numProcesso, $despesa, $valorReserva, NULL, $licitacaoSelicionada, $setorSelecionado, $naturezaDespesaSelect, $subElementoSelect,"R", $planoInterno);
				$resultadoSql = $reserva->CadastrarReserva();
				
				if($resultadoSql != 0){
					$rateioSelecionado->debitarValorCorrente($valorReserva);	
				}
			/**	if(strcasecmp(trim($licitacaoSelicionada->sigla), "SRP") != 0){
					$resultadoSqlRateio = $rateioSelecionado->AlterarRateio();
					
				}**/							
				if( $resultadoSql != 0) # caso a opera��o de inser��o no banco seja efetuada com sucesso entra aqui
				{					
					$titleHtml = "SAEO - Reserva cadastrada com sucesso";
					$cabecalhoHtml = "RESERVA CADASTRADA COM SUCESSO";
					$informacaoHtml = "Sucesso no cadastro da Reserva.<br /> <a href='reports/RelDespachoOrcamento.php?reservaId=$resultadoSql&disponibilidade=sim' target='_blank'>Imprimir despacho</a>";
				}
				else # tratar falhas na inser��o aqui
				{					
					$titleHtml = "SAEO - Problema no cadastro da reserva";
					$cabecalhoHtml = "FALHA NO CADASTRAMENTA DO RESERVA";
					$informacaoHtml = "Problema no cadastro do Reserva: ".mysql_error()."
                 <br>Por favor tente mais tarde!";
				}

			/**}else{
				$titleHtml = "SAEO - Reserva não cadastrada";
				$cabecalhoHtml = "RESERVA NÃO CADASTRADA";
				$informacaoHtml = "Reserva não realizada por falta de recurso.<br /> Imprimir despacho";
			}**/
            
    
    }
   
	/** Altera um objeto fonte no banco de dados.
	 * @POST['programaId']  	 - Identificador unico do objeto Programa no Banco de Dados
	 * @POST['tipoDespesa']  	 - tipo de despesa da fonte 
	 * @POST['fonteRecurso'] 	 - codigo da fonte de recurso
	 * @POST['valorFonte']   	 - valor da fonte
	 */    
    else if( $_GET['operacao'] == 2 )
    {
			// dados do formulario vindos de CadastrarRateio.php
			$idReserva       = $_POST['idReserva'];
                        $anoId 	     	 = $_POST['anoId'];
			$campusId    	 = $_POST['campiId'];
			$tipoDesp    	 = $_POST['tipoDespesa'];
			$fonteId 	 = $_POST['fonteId'];			
			
			$valor   	 = $_POST['valorReserva'];
			$setorId     	 = $_POST['setorId'];
			$processo    	 = $_POST['processoReserva'];
			$despesa     	 = $_POST['despesaReserva'];
			$natureza    	 = $_POST['naturezaDespesa'];		
			$subElementoId 	 = $_POST['subelemReserva'];
			$licitacaoId 	 = $_POST['licitacaoId'];
			$planoInternoId  = $_POST['planoInternoId'];
			
			$rateio = new Rateio();
			$rateioSelecionado = $rateio->CarregarRateioPorCampus($fonteId, $campusId);			
			//Tirando a mascara do valor para poder armazenar no banco
			$valorReserva = TirarFormatacaoValor( $valor );
			
			//if($rateioSelecionado->valorCorrente >= $valorReserva){

				$ano = new Ano();
				$anoSelecionado = $ano->CarregarAno($anoId);
					
				$campi = new Campus();
				$campiSelecionado = $campi->CarregarCampus( $campusId );

				$fonteRecurso = new Fonte();
				$fonteSelecionada = $fonteRecurso->CarregarFonte( $fonteId );
					
				$setor = new Setor();
				$setorSelecionado = $setor->CarregarSetor( $setorId );
				
				$licitacao = new Licitacao();
				$licitacaoSelicionada = $licitacao->CarregarLicitacao($licitacaoId);
					
				$naturezaDespesa = new NaturezaDespesa();
				$naturezaDespesaSelect = $naturezaDespesa->CarregarNaturezaDespesa($natureza);

				$subElemento = new SubElemento();
				$subElementoSelect = $subElemento->CarregarSubElemento($natureza, $subElementoId);
					
					
				$rateioSelecionado->valorCorrente = $rateioSelecionado->valorCorrente - $valorReserva;
				$numProcesso = TirarFormatacaoProcesso($processo);
				//$numProcesso = $processo;
	
				$planoInternoDAO = new PlanoInterno();
				$planoInterno = $planoInternoDAO->ConsultarPorCodigo($planoInternoId);
					
				$reservaAntigaDAO = new Reserva();
				$reservaAntiga = $reservaAntigaDAO->CarregarReserva($idReserva);
				
				$reserva = new Reserva($idReserva, $anoSelecionado, $rateioSelecionado, $campiSelecionado, $tipoDesp, $numProcesso, $despesa, $valorReserva, NULL, $licitacaoSelicionada, $setorSelecionado, $naturezaDespesaSelect, $subElementoSelect,"R", $planoInterno);
				$resultadoSql = $reserva->AlterarReserva();
				
			/**	if(strcasecmp(trim($licitacaoSelicionada->sigla), "SRP") != 0){
					$resultadoSqlRateio = $rateioSelecionado->AlterarRateio();
					
				}**/
                                if($resultadoSql){
					$rateioSelecionado->debitarValorCorrente($valorReserva - $reservaAntiga->$valor);	
				}
											
				if($resultadoSql) # caso a opera��o de inser��o no banco seja efetuada com sucesso entra aqui
				{					
					$titleHtml = "SAEO - Reserva alterada com sucesso";
					$cabecalhoHtml = "RESERVA ALTERADA COM SUCESSO";
					$informacaoHtml = "Sucesso na altera&ccedil;&atilde;o da Reserva.<br />";
				}
				else # tratar falhas na inser��o aqui
				{					
					$titleHtml = "SAEO - Problema na altera&ccedil;&atilde;o da reserva";
					$cabecalhoHtml = "FALHA NA ALTERA&Ccedil;&Atilde;O DO RESERVA";
					$informacaoHtml = "Problema na altera&ccedil;&atilde;o do Reserva: ".mysql_error()."
                                <br>Por favor tente mais tarde!";
				}

			/**}else{
				$titleHtml = "SAEO - Reserva não cadastrada";
				$cabecalhoHtml = "RESERVA NÃO CADASTRADA";
				$informacaoHtml = "Reserva não realizada por falta de recurso.<br /> Imprimir despacho";
			}**/
    	
    }
    
    /** Remove um objeto rateio no banco de dados.
	 * @POST['fonteId'] - Identificador único do objeto setor no Banco de Dados
	 */
    else if( $_GET['operacao'] == 3 )
    {
    	$empenho = new Empenho();
    	$resultadoEmpenho = $empenho->existeEmpenhoParaReserva($_POST['reservaId']);
    	 
    	if(!$resultadoEmpenho){
    		 
    		$reservaDao = new Reserva();
    		$reserva = $reservaDao->CarregarReserva($_POST['reservaId']);
    		$resultadoSql = $reservaDao->ExcluirReserva($reserva->id);
    		if($resultadoSql && strcmp($reserva->licitacao->sigla, "SRP") != 0){
    			$rateioDao = new Rateio();
    			$rateio = $rateioDao->CarregarRateio($reserva->rateio->id);
    			$rateio->creditarValorCorrente($reserva->valor);
    			//$rateio->valorCorrente = $rateio->valorCorrente + $reserva->valor;
    			//$rateio->AlterarRateio();
    		}


    		if( $resultadoSql ) # caso a opera��o de inser��o no banco seja efetuada com sucesso entra aqui
    		{
    			$titleHtml = "SAEO - Reserva Excluída com Sucesso";
    			$cabecalhoHtml = "RESERVA EXCLUÍDA COM SUCESSO";
    			$informacaoHtml = "Sucesso na exclus&atilde;o da reserva.";
    		}
    		else # tratar falhas na inser��o aqui
    		{
    			$titleHtml = "SAEO - Problema na exclus&atilde;o da Reserva";
    			$cabecalhoHtml = "FALHA NA EXCLUS&Atilde;O DA RESERVA";
    			$informacaoHtml = "Problema na exclus&atilde;o da Reserva: ".mysql_error()."
                 <br>Por favor tente mais tarde!";
    		}
    	}else{
    		$titleHtml = "SAEO - Problema na exclus&atilde;o da Reserva";
    			$cabecalhoHtml = "FALHA NA EXCLUS&Atilde;O DA RESERVA";
    			$informacaoHtml = "Problema na exclus&atilde;o da Reserva: Já existe um empenho para essa reserva
                 <br>Exclua o empenho primeiro";
    	}
    }
}
?>

<html>
           <head>
           <title><?php echo $titleHtml ?></title>
           <link rel='stylesheet' type='text/css' href='templates/estilos.css'>
           </head>
     <body class='body'>
     <table width='779' border='0' cellspacing='0' cellpadding='0' align='center' bgcolor='#FFFFFF'>
            <tr>
                	<td colspan='2'><?php include "Topo.php"; ?></td>
            </tr>
            <tr>
                <td><div class='titulosTabelas' style='width:779; height:20; background:url(templates/tabela.jpg)'><?php echo $cabecalhoHtml ?> </div></td>
            </tr>
            <tr>
                <td colspan='2'>&nbsp;</td>
            </tr>
            <tr>
                <td><table class='tabela' width='495' border='0' cellspacing='0' cellpadding='0' align='center' bgcolor='#FFFFFF'>
                           <tr>
                               <td>&nbsp;</td>
                           </tr>
                           <tr>
                               <td class='textoTabelas' align='center'><?php echo $informacaoHtml ?></td>
                           </tr>
                           <tr>
                               <td>&nbsp;</td>
                           </tr>
                     </table>
                </td>
            </tr>
            <tr>
                <td>&nbsp;</td>
            </tr>
            <tfoot>
           <tr>
                <td colspan='2'>&nbsp;</td>
            </tr>
                   <tr>
                   		<?php include 'rodapeCreditos.php'; ?>
                   </tr>
            </tfoot>
     </table>
     </form>
     </body>
     </html>